Skip to content

refactor(tools): 台帳65列をレビューし、人/AI が書く列を12列に整理 - #1897

Merged
mhaya merged 2 commits into
develop_v2.0.4from
chore/api-inventory-column-review
Aug 25, 2026
Merged

refactor(tools): 台帳65列をレビューし、人/AI が書く列を12列に整理#1897
mhaya merged 2 commits into
develop_v2.0.4from
chore/api-inventory-column-review

Conversation

@mhaya

@mhaya mhaya commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

概要 (Summary)

台帳の65列をレビューし、人/AI が書かなければならない列を必要十分に整理しました。ツールとドキュメントのみで、アプリケーションコードへの変更はありません。

PR #1896 のマージ後に積んだ2コミットです。

変更前 変更後
台帳の列数 65 62
人/AI が書く列 25 12

変更タイプ (Type of Change)

  • 🚀 新機能追加 (Feature) — 開発基盤
  • 📚 仕様書・マニュアル・APIリストの更新 (Documentation)

1. 機械化(6列)— add_reqinfo.py を追加

実装から決まる列を人手で埋めていたのをやめ、AST とデコレータから機械付与します。

取得元
query_params request.args.get 等の参照キー
body_params request.get_json / request.form
request_content_type Content-Type の検査、JSON を読むか
oauth_scope @require_oauth_scopes(...) の引数
cache_ratelimit @limiter.limit(...)
api_version uri から導出
test_file--with-test-file impl_func でテストを検索

他の機械付与スクリプトと同じく 空欄/TODO のセルだけを埋め、既存値は上書きしません

誤値の是正

oauth_scope253行に admin-role-table が入っていました。これは認証方式(auth_method / auth_mechanism が保持)であって OAuth スコープではなく、列の意味を取り違えた手入力です。--fix-oauth-scope- に戻しました。判定は「<資源>:<操作> を1つでも含むか」とし、注記付きの正当な値(deposit:write(Authorizationヘッダ使用時)invalid_scope(存在しないスコープ))は残しています。

2. 列参照を位置から列名へ

add_authmech.pyc[41](= sec_pattern)を位置で参照しており、列を統合するとずれて壊れる状態でした。5本すべてを列名参照に変更しています。

add_cols.py / add_ssrf_redirect.py / add_idempotency.py / add_dataop4.py / add_authmech.py

置換の前後で台帳に変化がないこと(等価性)を確認済みです。

3. 列の統合(台帳側、65 → 62)

統合後 統合元 理由
access_variance auth_response_variance + restricted_content 24列版では既に1列
data_store data_target + data_store 同上
data_op data_op_detail + data_op 粒度違いの重複(完全一致 61/926)

add_dataop4.py の書き込み先を data_op_detaildata_op に、prioritize.py / build_checklist.py を統合後の列名に追随させました。

人/AI が書く列(必要十分)— 12列

summary / roles / access_variance / data_store / side_effects / config_deps / deprecated / notes / sec_pattern / sec_detail / sec_exposed / sec_evidence

最後の4列が調査の本体です。response / status_codes / category_tags は AST の一次抽出で足り、人は精査のみになります。

動作検証

列数            full=62 / 24列版=32
優先度分布      P0(至急)1 / P0(最優先)58 / P1 273 / P2 412 / P3 4 / P4 66 /
                整理対象19 / 環境依存11 / 対象外82
reconcile       exit=0(実機との差分なし)
機械付与6本の再実行  空欄を埋めたセル 0(冪等)

補足

台帳そのものは public な本リポジトリに含まれていません。これらのスクリプトは WEKO_API_INVENTORY_DIR が指す秘密の場所の台帳を読み書きします。台帳側の変更は別リポジトリに反映済みです。

mhaya and others added 2 commits August 24, 2026 23:00
65列を棚卸しし、人/AI が埋めていた25列のうち実装から決まる6列を機械化した。

  query_params / body_params / request_content_type  AST(request.args/get_json/form)
  oauth_scope                                        @require_oauth_scopes の引数
  cache_ratelimit                                    @limiter.limit / cache
  api_version                                        uri から導出
  test_file (--with-test-file)                       impl_func でテストを検索

add_cols.py 等と同じく **空欄/TODO のセルだけ**を埋める。例外として
--fix-oauth-scope は oauth_scope に入っているスコープでない値を - に戻す
(手入力で 253 行に admin-role-table が入っており、列の意味の取り違えだった)。
判定は「<資源>:<操作> を1つでも含むか」とし、注記付きの正当な値を落とさない。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HXo9u6PoTf6VRKr3aiGvZ3
台帳の列統合(65列 → 62列)に合わせてスクリプトを更新した。

- add_cols.py / add_ssrf_redirect.py / add_idempotency.py / add_dataop4.py /
  add_authmech.py の列参照を位置(c[2], c[41] 等)から列名に変更。列を統合すると
  位置がずれて壊れるため。add_authmech.py の c[41]=sec_pattern、probe.py の
  c[41] が該当していた。置換前後で台帳に変化がないことを確認済み。
- add_dataop4.py の書き込み先を data_op_detail → data_op に変更。
- prioritize.py / build_checklist.py を統合後の列名(access_variance /
  data_store / data_op)に追随させた。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HXo9u6PoTf6VRKr3aiGvZ3
@github-actions

Copy link
Copy Markdown

API インベントリ差分(件数のみ)

明細は公開できないため件数のみ表示しています。該当箇所は秘密側の台帳・レポートで確認してください。

ベースラインとの差分

API インベントリ差分レポート

  • 旧: d2fdc0e3b v2.0.3 (profile=default) endpoints=860 (外部ライブラリ由来 291)
  • 新: 10ab62d3f v2.0.3-20-g10ab62d3f (profile=default) endpoints=860 (外部ライブラリ由来 291)

判定: ✅ PASS (FAIL 0 / WARN 1)

サマリ

分類 件数
ADDED 0
REMOVED 0
RULE_CHANGED 0
METHODS_CHANGED 0
AUTH_CHANGED 0
IMPL_CHANGED 0
ATTRS_UNKNOWN_NEW 0
ModelView 追加 0
ModelView 削除 0
ModelView フラグ変化 0
config 変化 0
コメントアウト認証の増加 0
依存パッケージの版変化 3

[WARN] W6 依存パッケージの版が変化した — 3件

  • pbr — 7.0.3 -> 7.1.1
  • pyld — 3.1.0 -> 3.2.0
  • weko-redis — 0.1.0.dev20170000 -> (削除)

台帳との突き合わせ

スナップショット ↔ インベントリ 突き合わせ

  • リビジョン: 10ab62d3f v2.0.3-20-g10ab62d3f 経路URI=870
  • 台帳: 行=926 URI=881

件数のみ。詳細は秘密側の完全版レポートを参照。

判定: ✅ 一致 (0件)

検出 件数
A. インベントリ未収載(抽出漏れ) 0
B. 実機に無い(未説明) 0
B'. 実機に無い(既知・許容) 11
C. メソッド不一致 0
D. app列の不一致 0

@mhaya
mhaya merged commit 7955ca3 into develop_v2.0.4 Aug 25, 2026
43 of 142 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant